package com.weipeep.sys.service.impl;

import com.weipeep.sys.dao.UserProductDao;
import com.weipeep.sys.domain.UserProductDO;
import com.weipeep.sys.query.UserProductQuery;
import com.weipeep.sys.service.UserProductService;
import com.weipeep.sys.vo.UserProductVo;
import org.springframework.stereotype.Service;

import com.weipeep.common.base.CoreServiceImpl;

import javax.annotation.Resource;
import java.util.List;

/**
 * 
 * <pre>
 * 用户和产品
 * </pre>
 * <small> 2018-06-23 13:25:51 | wangyun</small>
 */
@Service
public class UserProductServiceImpl extends CoreServiceImpl<UserProductDao, UserProductDO> implements UserProductService {
    @Resource
    UserProductDao userProductDao;

    @Override
    public int selectUserProductCount(UserProductVo userProduct, Integer pageNumber, Integer pageSize) {
        UserProductQuery userProductQuery = new UserProductQuery(userProduct);
        userProductQuery.setUserId(userProduct.getUserId());
        userProductQuery.setLimit(pageSize);
        userProductQuery.setOffset((pageNumber-1)*pageSize);
        return userProductDao.fetchUserProductVoCount(userProductQuery);
    }

    @Override
    public List<UserProductVo> selectUserProductList(UserProductVo userProduct, Integer pageNumber, Integer pageSize) {
        UserProductQuery userProductQuery = new UserProductQuery(userProduct);
        userProductQuery.setUserId(userProduct.getUserId());
        userProductQuery.setLimit(pageSize);
        userProductQuery.setOffset((pageNumber-1)*pageSize);
        return userProductDao.fetchUserProductVoList(userProductQuery);
    }


    @Override
    public int selectUserProductAuditCount(UserProductVo userProduct, Integer pageNumber, Integer pageSize) {
        UserProductQuery userProductQuery = new UserProductQuery(userProduct);
        userProductQuery.setLimit(pageSize);
        userProductQuery.setOffset((pageNumber-1)*pageSize);
        return userProductDao.fetchUserProductVoAuditCount(userProductQuery);
    }


    @Override
    public List<UserProductVo> selectUserProductAuditList(UserProductVo userProduct, Integer pageNumber, Integer pageSize) {
        UserProductQuery userProductQuery = new UserProductQuery(userProduct);
        userProductQuery.setLimit(pageSize);
        userProductQuery.setOffset((pageNumber-1)*pageSize);
        return userProductDao.fetchUserProductVoAuditList(userProductQuery);
    }
    @Override
    public int selectUserProductHasAuditCount(UserProductVo userProduct, Integer pageNumber, Integer pageSize) {
        UserProductQuery userProductQuery = new UserProductQuery(userProduct);
        userProductQuery.setLimit(pageSize);
        userProductQuery.setOffset((pageNumber-1)*pageSize);
        userProductQuery.setAuditStatus(1);
        return userProductDao.fetchUserProductVoAuditCount(userProductQuery);
    }
    @Override
    public List<UserProductVo> selectUserProductHasAuditList(UserProductVo userProduct, Integer pageNumber, Integer pageSize) {
        UserProductQuery userProductQuery = new UserProductQuery(userProduct);
        userProductQuery.setLimit(pageSize);
        userProductQuery.setOffset((pageNumber-1)*pageSize);
        userProductQuery.setAuditStatus(1);
        return userProductDao.fetchUserProductVoAuditList(userProductQuery);
    }
}
